/**
 * 目标1：验证token
 */
checkToken();

/**
 *  目标2：回显用户名
 *
 */

renderUname();

/**
 * 目标3：退出登录
 */
logout();

/**
 * 目标4：渲染 统计数据
 *  4.1 获取数据
 *  4.2 渲染页面
 */

/**
 * 函数封装 =》 获取数据
 */
const getData = async () => {
  const data = localStorage.getItem("userMsg")
    ? JSON.parse(localStorage.getItem("userMsg"))
    : {};
  const { token } = data;
  //4.1 获取数据
  // await不能接受错误消息，需要加上try catch
  try {
    const res = await axios({
      url: "/dashboard",
      method: "GET",
      // 请求头参数  在axios拦截器里面添加了，这里可以注释。 也就是说以后不用每次在axios中都写这个参数了
      //   headers: {
      //     Authorization: token,
      //   },
    });

    //console.log(res);
    // 获取到数据后，调用渲染函数，渲染页面不同区域。
    // 1.渲染overview
    renderOverview(res.data.overview);
  } catch (error) {
    //下方代码转移到axios响应拦截器中实现
    // console.log(error);
    // console.dir(error);
    // if (error.response.status === 401) {
    //   // 代表token过期或被篡改
    //   showToast("您的登录信息过期，请重新登录");
    //   //清除存储信息
    //   localStorage.removeItem("userMsg");
    //   //跳转到登录页面
    //   setTimeout(() => {
    //     location.href = "./login.html";
    //   }, 1500);
    // }
  }
};

getData();

/**
 * 4.2 渲染页面
 */

const renderOverview = (overview) => {
  console.log(overview);
  // 数据的键和页面的类名一致
  Object.keys(overview).forEach((key) => {
    document.querySelector(`.${key}`).innerText = overview[key];
  });
};
